﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Exec
{
    // 변수 테이블
    public class Val
    {
        private static Symbol<IValue> val_t
            = new Symbol<IValue>();

        // 변수 추가
        public static void Add(IPlugIn p, string v,IValue val)
        {
            val_t.Set(p.GetPrefix(), v, val);
        }

        // 변수 참조
        public static IValue Ref(IPlugIn p, string v)
        {
            return val_t.Get(p.GetPrefix(), v);
        }

        // 변수 제거
        public static void Remove(IPlugIn p, string c)
        {
            if (!val_t.Remove(p.GetPrefix(), c))
            {
                NonVal();
            }
        }

        // 변수 없음
        private static bool NonVal()
        {
            Console.WriteLine("해당 변수 없습니다.");
            return false;
        }

        public static void PrintValue()
        {
            Console.WriteLine("Plugin_Value");
            val_t.Print();
        }
    }
}
